创建Java类并实例化

您所在的位置:网站首页 属性string name 创建Java类并实例化

创建Java类并实例化

2023-07-21 18:47| 来源: 网络整理| 查看: 265

类的设计:

public class TestPerson{    class person{      //属性:      String name;      int age;      boolean sex;      //方法      public void eat(){         System.out.println("人吃饭");      }    }

使用:  

 public static void main(String[] ages){       person p1 = new person();//类的实例化,创建类的对象    } }

面向对象思想的落地法则一: 1、设计类并设计类的成员(成员变量&成员方法) 2、通过类来创建类的对象(也称作类的实例化) 3、通过“对象.属性”或“对象.方法”来调用完成相应的功能

   public static void main(String[] ages){       person p1 = new person();//类的实例化,创建类的对象       p1.name="花花";    } }

每new一个实体类,即创建一个实体类对象,类的对象所有的属性皆初始化。

   public static void main(String[] ages){       person p1 = new person();//类的实例化,创建类的对象       //此时p1.name=null;             p1.age=0;         p1.sex=false;    } }

创建多个对象,彼此各自拥有一套类的属性,当对其中一个对象的属性进行修改时,不会影响到其他属性值。  

 public static void main(String[] ages){       person p1 = new person();//类的实例化,创建类的对象       person p2 = new person();       person p3 = p1; //这种情况不是创建,而是p3和p1共同使用一个对象实体    } }

类的属性(成员变量) 成员变量VS局部变量 相同点:

       1、遵循变量的声明格式:数据类型 变量名 = 初始化值;        2、都有作用域

不同点:

        1、声明的位置不同,成员变量声明在类里、方法外局部变量声明在方法内、方法的形参部分、代码块内         2、成员变量的修饰符有四个public, private, protected, 缺省局部变量没有修饰符,与所在的方法修饰符相同         3、初始化值:全部都一定会有初始化值        成员变量:如果在声明的时候不显示赋值,那么不同数据类型会有不同的默认初始化值        引用类型变量的初始化值是null。        局部变量:一定要显示赋值。(局部变量没有默认的初始化值)         4、二者在内存中的位置不同,成员变量是在堆空间中,局部变量是在栈空间中     PS:(不明不白的PS,以后略过)方法中的局部变量在使用后将值传给实体类的属性,此时局部变量就挂了消失在栈空间,而值则传给了属性,传到了堆空间中         eg:

public void name(String n){              name =n;         }         p1.name("花花");

ps:有关堆和栈的小白理解:    栈空间,在画图的时候较小的空间,在栈里面存放的对象的引用和局部变量,换个理解都是定义氏的抽象,非实体类东西。    堆空间,较大的空间,在堆空间内都是被new出来的实体和成员变量。

   栈空间存放的是定义,虚的。局部变量存在方法中还是定义类的东西    堆空间放的实际的,实的。成员变量是指被new出来的初始化成员变量

在这里顺带还能理解抽象类的第一步,对实体进行描写,没有进行实际应用。

总结:关于变量的分类 按照基本数据类型的不同:基本数据类型(八种)和引用数据类型 按照声明位置的不同:成员变量和局部变量

补:在方法体外,类体内声明的变量成为成员变量        在方法体内部声明的变量称为局部变量

成员变量:实体变量(不以static修饰)                   类变量(以static修饰) 局部变量:形参(方法签名中定义的变量)                   方法局部变量(在方法内定义)                   代码块局部变量(在代码块内定义)

注意:二者在初始化值方面的异同      同:都有生命周期      异:局部变量除形参外,需显示初始化

类的方法:提供某种功能的实现 1、实例:public void eat(){}          public String getName(){}      public void setName(String n){}    格式:权限修饰符 返回值类型(void:无返回值类型/具体的返回值) 方法名(形参){具体方法实现,想完成什么样的功能}    PS:权限修饰符和成员变量修饰符一样(public, private, protected, 缺省)

2、注意:void,表明此方法不需要返回值   ( ps:小白理解法,没有返回值就相当于安排一个人去忙一件事,忙完之后他继续去做自己的事不需要再回来告知你事情完成了。)          有返回值的方法,在方法的最后一定有return +返回值类型对应d额变量 语句,      通过对象调用方法时,会将方法的返回值提供给方法的调用者,也就是当前的对象。 记忆:void和return不可以同时出现一个方法内。像一对“冤家”。

3、方法内可以调用本类的其他方法和属性,但是不能在方法内再定义方法   eg:public void info(){      eat();      sleep();   }

对象的创建和使用 使用new+构造器创建一个新的对象; 使用对象.对象成员的方式访问对象成员(包括属性和方法); eg:查看eg文件中person和testPerson

类的访问机制 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外,static方法访问非static,编译不通过) 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

在实际的案例使用中,方法类和属性类会严格的区分开。 属性类也就是开发中常用的实体类,POJO内会有属性的声明,以及属性相关的get、set方法,(ps:通过get、set方法可以修改属性的值)。 方法类会分为接口和实现类两个部分,(ps:接口为抽象类),实现类继承接口,来实现接口的方法。

PS部分可能描述不准确,如果有错的欢迎评论指正

1、面向对象的编程关注与类的设计 2、设计类实际上就是设计类的成员 3、基本的类的成员:属性(成员变量:Field)&方法(Method) 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3